/* 
 * File:   season.hpp
 * Author: dolphinigle
 *
 * Created on March 16, 2011, 2:39 PM
 */

// season is basically seasonconstants, season is simply represented by IDs

#ifndef SEASON_HPP
#define	SEASON_HPP

#include <string>
#include <vector>

class Season {
public:
  // number of seasons
  static int getSeasonCount();

  // ids are 0-indexed
  static std::string getSeasonName(int season_id);

  // mask stores the mask of possible seasons. The least-important-bit
  // represents season_id 0, and so on. (i.e., little endian)
  // returns getSeasonCount() elements, the i-th element is true iff
  // season_id i is possible.
  static std::vector<bool> getPossibleSeasons(int mask);
  
  static std::string getSeasonDescription(int season_id);

  static int getSeasonLength(int season_id);

private:

  static const int kSeasonCount;
  static const std::string kSeasonNames[];
  static const std::string kSeasonDescriptions[];
  static const int kSeasonLength[];

};

#endif	/* SEASON_HPP */

